home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Interactive 7
/
PC World Interactive 7.iso
/
program
/
qbprog.EXE
/
ANALIZ.BAS
next >
Wrap
BASIC Source File
|
1995-09-27
|
4KB
|
169 lines
'SoundBlaster ile kaydedilen ve dinlenen ses (voice=.VOC) dosyasìnìn
'analizini yapar
'Analiz edilecek dosyayì Dosya$ deºiƒkenine yerleƒtirin.
'QBASIC Veya QB veya QBX de çalìƒìr.
'Analiz edilecek dosyanìn adìnì girin
Dosya$ = "D:\MUZIK\VOC\1.VOC"
COLOR 7, 1
CLS
LOCATE 3, 1
CLOSE #1
OPEN Dosya$ FOR BINARY AS #1
A$ = SPACE$(20)
GET #1, , A$
IF A$ <> "Creative Voice File" + CHR$(&H1A) THEN PRINT "Dosya voc deºil": END
GET #1, , BaslamaYeri%
GET #1, , Versiyon%
GET #1, , Kontrol%
IF Versiyon% <> 4659 - Kontrol% THEN PRINT "Dosya voc deºil": END
LOCATE CSRLIN, 8
PRINT TAB(8); "╔"; STRING$(63, "═"); "╗"
Mesaj$ = "Dosya adì=" + Dosya$ + " , Büyüklük=" + LTRIM$(STR$(LOF(1))) + " byte"
GOSUB Mesaj
LOCATE CSRLIN, 8
PRINT TAB(8); "╠"; STRING$(63, "═"); "╣"
DO
GOSUB DataAl
IF BlokTipi = 1 OR BlokTipi = 2 THEN
IF Devam = 0 THEN
Devam = 1
SesBuyuk = 0
END IF
ELSE
IF Devam = 1 THEN
Devam = 0
Mesaj$ = " Ses bloku Boy=" + LTRIM$(STR$(SesBuyuk)) + " Byte, Frekans=" + LTRIM$(STR$(Ornekleme)) + " Hz, Paketleme=1:" + LTRIM$(STR$(Paket))
GOSUB Mesaj
END IF
END IF
SELECT CASE BlokTipi
CASE 1
GOSUB Blok1
CASE 2
GOSUB Blok2
CASE 3
GOSUB Blok3
CASE 4
GOSUB Blok4
CASE 5
GOSUB Blok5
CASE 6
GOSUB Blok6
CASE 7
GOSUB Blok7
CASE 0
EXIT DO
END SELECT
LOOP
Mesaj$ = " Dosya Sonu..."
GOSUB Mesaj
LOCATE CSRLIN, 8
PRINT TAB(8); "╚"; STRING$(63, "═"); "╝"
END
Mesaj:
Mesaj$ = "║ " + LEFT$(Mesaj$ + SPACE$(62), 62) + "║"
LOCATE CSRLIN, 8
PRINT Mesaj$
RETURN
DataAl:
A$ = " "
GET #1, , A$
BlokTipi = ASC(A$)
RETURN
BuyuklukAl:
Buyuk = 0
GOSUB DataAl
Buyuk = Buyuk + BlokTipi - 2
GOSUB DataAl
Buyuk = Buyuk + BlokTipi * 256
GOSUB DataAl
Buyuk = Buyuk + BlokTipi * 65536
RETURN
Oku:
IF Buyuk - Yer > 12000 THEN Uzunluk = 12000 ELSE Uzunluk = Buyuk - Yer
A$ = SPACE$(Uzunluk)
GET #1, , A$
Yer = Yer + Uzunluk
SesBuyuk = SesBuyuk + Uzunluk
IF Yer <> Buyuk THEN GOTO Oku
RETURN
Blok1:
GOSUB BuyuklukAl
GOSUB DataAl
Ornekleme = 1000000 \ (256 - BlokTipi)
GOSUB DataAl
Paket = 8 / (BlokTipi + 1)
Yer = 0
GOSUB Oku
RETURN
Blok2:
GOSUB BuyuklukAl
Yer = 0
GOSUB Oku
RETURN
Blok3:
GOSUB BuyuklukAl
GOSUB DataAl
SessizOrnekleme = 1000000 \ (256 - BlokTipi)
Mesaj$ = " Sessizlik bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, frekans=" + LTRIM$(STR$(SessizOrnekleme)) + " Hz"
GOSUB Mesaj
RETURN
Blok4:
GOSUB BuyuklukAl
Marker = 0
GOSUB DataAl
Marker = Marker + BlokTipi
GOSUB DataAl
Marker = Marker + BlokTipi * 256
Mesaj$ = " Sürücü özel iƒareti, ÿƒaret=" + LTRIM$(STR$(Marker))
GOSUB Mesaj
RETURN
Blok5:
GOSUB BuyuklukAl
Mesaj$ = ""
DO
GOSUB DataAl
Mesaj$ = Mesaj$ + CHR$(BlokTipi)
IF BlokTipi = 0 THEN EXIT DO
LOOP
Mesaj$ = " ASCII Mesaj bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, mesaj baƒì: " + LEFT$(Mesaj$ + SPACE$(20), 20)
GOSUB Mesaj
RETURN
Blok6:
GOSUB BuyuklukAl
Tekrar = 0
GOSUB DataAl
Tekrar = Tekrar + BlokTipi
GOSUB DataAl
Tekrar = Tekrar + BlokTipi * 256
Ek$ = LTRIM$(STR$(Tekrar)) + " adet"
IF Tekrar = 65535 THEN Ek$ = "Sonsuza kadar"
Mesaj$ = "*Tekrarlama baƒlangìcì, tekrarlama sayìsì=" + Ek$
GOSUB Mesaj
RETURN
Blok7:
GOSUB BuyuklukAl
Mesaj$ = "*Tekrarlama Sonu.."
GOSUB Mesaj
RETURN